The background description includes information that may be useful in understanding the present invention. It is not an admission that any of the information provided herein is prior art or relevant to the presently claimed invention, or that any publication specifically or implicitly referenced is prior art.
All publications herein are incorporated by reference to the same extent as if each individual publication or patent application were specifically and individually indicated to be incorporated by reference. Where a definition or use of a term in an incorporated reference is inconsistent or contrary to the definition of that term provided herein, the definition of that term provided herein applies and the definition of that term in the reference does not apply.
The amount of information archived on computer storage is constantly increasing. Storing and sorting increasing amounts of information can be time-consuming for even the most advanced computer systems without systems and methods for optimizing methods to store and retrieve that data efficiently. Volatile memory structures tend to be fast, but have limited storage capabilities, while persistent memory structures tend to be slower, but have large storage capabilities. Ensuring persistence of data stored in volatile memory structures could hamper the performance of a computer system, particularly when such persistence requires multiple data transactions with slower persistent memory structures.
U.S. Pat. No. 7,058,785 to Ochotta teaches a system that manages persistent data objects between persistent storage and a volatile memory. Ochotta generates persistent storage addresses from persistent pointers by multiplying the persistent pointer value by an integer multiplier. Using such multipliers allows data to be stored and retrieved rapidly from persistent memory, however such multipliers is very space-inefficient for the persistent memory and cannot always be utilized when the resultant address is already allocated.
U.S. Pat. No. 7,870,359 to Challenger teaches a system that manages persistent data objects between persistent storage and a volatile memory by maintaining header pointers in a contiguous area of the memory so that they can be accessed and changed rapidly. However, by Challenger's system requires the system to repeatedly search back to the header every time a pointer in the persistent memory is referenced, which is time-inefficient and requires large hash tables for pointer storage and lookup.
Thus, there remains a need for improved systems and method to efficiently persist data structures in volatile memory.